package cn.xianshu.mq2._01_hello;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

/**
 * 生产者
 * 1.创建连接
 * 2.创建通道
 * 3.创建队列
 * 4.发送消息
 */
public class Producer {
    public static final String NAME_PRODUCER_HELLO = "NAME_PRODUCER_HELLO";


    public static void main(String[] args) throws IOException, TimeoutException {
        // 创建工厂
        ConnectionFactory factory = new ConnectionFactory();
            //factory.setUsername(userName); // 用户名
            //factory.setPassword(password); // 用户密码
            //factory.setVirtualHost(virtualHost); // 虚拟机
            //factory.setHost(hostName); // 端口 默认localhost
            //factory.setPort(portName); // 端口号

        // 1.创建连接
        Connection connection = factory.newConnection();

        // 2.创建通道
        Channel channel = connection.createChannel();
        // 3.创建队列
        channel.queueDeclare(NAME_PRODUCER_HELLO, // 队列名
                true, // 队列持久化
                false, // 独占队列
                false, // 用完删除队列
                null // 其他配置
                );

        // 4.发送消息
        channel.basicPublish("", // 交换机名 使用默认交换机名
                NAME_PRODUCER_HELLO, // 队列名
                null, // 其他参数
                "01、01 我是7七，收到请回答!".getBytes()
                );


        System.out.println("消息发送成功!");
    }
}
